优维产品最佳实践第4期:如何在海量日志中“捞“到你要的关键字?

日志记录了软件系统的生命线,为我们提供了故障排查和性能优化的关键线索。 本期EasyOps产品使用最佳实践,我们将为您揭晓: 如何监控日志的关键字? 如何基于关键字告警? 日 志 关 键 字 监 控 日志作为软件系统运行时记录,记录了软件运行生命周期的事件,因此日志监控在监控实践中属于非常关键的一项。 在日志监控中,我们可能会有这样的需求: 针对某个特殊的关键字做监控,关注关键字出现的次数,希望知道在什么时刻,关注的关键字是多少。如下图所示: 当在周期内出现关键字的次数大于多少次时,希望引起重视,比如下面的告警告诉我1888@ not found这个关键字在一个采集周期内,已经出现了52次。 结合以上信息,很可能代表软件系统的功能发生了故障。 那么该怎么满足上述的监控效果?下面的文档,演示了如何基于平台,实现对关键字的采集和监控,并且基于关键字出现的次数进行告警。
配 置 说 明
1.新建日志采集任务
选择右上角的新建日志采集并提取关键字加工为指标,注意,这里分为两种类型的指标:
关键字加工指标:可通过从日志数据提取关键字,并加工为指标对系统进行实时监控,提升系统健康的感知能力。 通用指标:通用指标包含各种由日志内容分割出来的指标。 选择监控的资源对象 选择日志标记 点击下一步后,选择要监控的关键字 此处会新建一个指标:keepalive_timeout_count。 注意: 这个指标会从日志内容中,匹配包含err:keepalive timeout的关键字,如果匹配,则指标数加1。 日志汇聚频率是15s采集一次,也就是说,如果配置出现次数的阈值是10,那么,在15秒内这个采集周期中,出现10次关键字后,即可触发告警。 最后点击保存。 稍等片刻后,即可看到指标的数据。也就是我们开头提到的图: 2.配置告警规则 ① 新增监控目标, 这个目标一般是主机,也可以关联具体的部署实例。具体根据上面的配置采集策略时关联的模型而定。在此处,则是一台主机: ② 添加告警条件,这里针对新建的指标,在采集周期内出现超过10次即告警。具体次数可根据您的实际场景而定: ③ 后续根据实际情况添加到告警通知组。 此时,当监控的日志出现关键字,超过10次后,即可触发告警通知。 附上告警通知模板: {% set color = "red" %} {{time|ts2str:'%Y-%m-%d %H:%M'}} 产生告警事件</font></h2> | 事件类型 | 日志监控 | | --- | --- | | 告警等级 | {{levelName}} | | 告警资源 | {{t*****}} | | 告警信息 | {{originContent}} | | 运营负责人 |{{instance|jsonpath:'$.owner[*].name'|unique|join:','}} | | 持续时长 | {{duration|duration_format:'zh'}} | | 首次发生时间 | {{startTime|ts2str:'%Y-%m-%d %H:%M'}} | | 事件详情 | [请点击](http://*****.*******.*****/next/events/{{eventId}}/detail) | | 策略详情 | [请点击](http://*****.*******.*****/next/events/alert-rule/alert-rule/{{ruleId}}/edit) | - end -